import Mock from 'mockjs' //导入mockjs

const userList = { //定义用户数据
  data: {
    //前两个用户数据分别固定设为管理员和普通用户，为后续权限设置做准备，其他用户随机生成
    userinfo: [{
      account: 'admin',
      password: '123456',
    }, {
      account: 'editor',
      password: '123456',
    }, {
      account: '@word(3, 5)',
      password: '123456'
    }, ],
    meta: {
      status: 200,
      message: 'success',
    }
  },
};
const {
  userInfo
} = Mock.mock({
  "userInfo|1": [{ //登录成功返回用户信息
    "id|+1": 1, //数字从当前数开始后续依次加一
    "name": "@cname", //名字为随机中文名字
    "ago|18-28": 25, //年龄为18-28之间的随机数字
    "sex|1": ["男", "女"], //性别是数组中的一个，随机的
    "job|1": ["web", "UI", "python", "php"], //工作是数组中的一个
    token: "TKN:R:r:D:QZtyGm5HDZAxi:lxy" //用户登录凭证
  }]
})

//post写法
// Mock.mock('/test/action', 'post', req => { //路径与请求方式
//   const {data:{account,password}}= JSON.parse(req.body); //将传递进来的数据保存
//   const data=userList.data.userinfo
//   for (let i = 0; i < data.length; i++) {
//     //判断userList中是否存在该用户并且用户密码是否正确
//     if (account === data[i].account && password === data[i].password) {
//       return {
//         data: {
//           msg: 'success',
//           status: 200
//         }
//       }
//     }
//   }
//   return {
//     meta: {
//       msg: 'error',
//       status: 201
//     }
//   }
// })
// 获取url参数函数
function getQueryVariable(url, variable) {
  // 从?开始获取后面的所有数据
  var query = url;
  // 从字符串&开始分隔成数组split
  var vars = query.split("&");
  // 遍历该数组
  for (var i = 0; i < vars.length; i++) {
    // 从等号部分分割成字符
    var pair = vars[i].split("=");
    // 如果第一个元素等于 传进来的参的话 就输出第二个元素
    if (pair[0] == variable) {
      return pair[1];
    }
  }
  return (false);
}

//get写法
Mock.mock(RegExp('/test/action.*'), 'get', req => { //路径与请求方式

  const url = req.url.split("?")[1]
  const account = getQueryVariable(url, 'account')
  const password = getQueryVariable(url, 'password')
  const data = userList.data.userinfo
  const {
    userInfo
  } = Mock.mock({
    "userInfo|1": [{ //登录成功返回用户信息
      "id|+1": 1, //数字从当前数开始后续依次加一
      "name": account, //名字为随机中文名字
      "ago|18-28": 25, //年龄为18-28之间的随机数字
      "sex|1": ["男", "女"], //性别是数组中的一个，随机的
      "job|1": ["web", "UI", "python", "php"], //工作是数组中的一个
      token: "TKN:R:r:D:QZtyGm5HDZAxi:lxy", //用户登录凭证
      img_url: "@image('50*50','#040456','#FCFCFC','png','demo')",
    }]
  })
  for (let i = 0; i < data.length; i++) {
    //判断userList中是否存在该用户并且用户密码是否正确
    if (account === data[i].account && password === data[i].password) {
      return {
        data: {
          msg: '登录成功',
          status: 200,
          userInfo
        }
      }
    }
  }
  return {
    meta: {
      msg: '账号或者密码错误，请重新输入',
      status: 201
    }
  }
})

// get写法
export default {
  'get|/test/action': userList,
}
// post写法
//定义请求方法与路径
// export default {
//   'post|/test/action': userList,
// }